/*
 * Copyright (c) 2020, Andreas Kling <kling@serenityos.org>
 *
 * SPDX-License-Identifier: BSD-2-Clause
 */

#include <AK/StringView.h>
#include <LibWeb/HTML/Parser/Entities.h>

namespace Web {
namespace HTML {

Optional<EntityMatch> code_points_from_entity(const StringView& entity)
{
    constexpr struct {
        StringView entity;
        u32 code_point;
    } single_code_point_entities[] = {
        { "AElig;", 0x000C6 },
        { "AElig", 0x000C6 },
        { "AMP;", 0x00026 },
        { "AMP", 0x00026 },
        { "Aacute;", 0x000C1 },
        { "Aacute", 0x000C1 },
        { "Abreve;", 0x00102 },
        { "Acirc;", 0x000C2 },
        { "Acirc", 0x000C2 },
        { "Acy;", 0x00410 },
        { "Afr;", 0x1D504 },
        { "Agrave;", 0x000C0 },
        { "Agrave", 0x000C0 },
        { "Alpha;", 0x00391 },
        { "Amacr;", 0x00100 },
        { "And;", 0x02A53 },
        { "Aogon;", 0x00104 },
        { "Aopf;", 0x1D538 },
        { "ApplyFunction;", 0x02061 },
        { "Aring;", 0x000C5 },
        { "Aring", 0x000C5 },
        { "Ascr;", 0x1D49C },
        { "Assign;", 0x02254 },
        { "Atilde;", 0x000C3 },
        { "Atilde", 0x000C3 },
        { "Auml;", 0x000C4 },
        { "Auml", 0x000C4 },
        { "Backslash;", 0x02216 },
        { "Barv;", 0x02AE7 },
        { "Barwed;", 0x02306 },
        { "Bcy;", 0x00411 },
        { "Because;", 0x02235 },
        { "Bernoullis;", 0x0212C },
        { "Beta;", 0x00392 },
        { "Bfr;", 0x1D505 },
        { "Bopf;", 0x1D539 },
        { "Breve;", 0x002D8 },
        { "Bscr;", 0x0212C },
        { "Bumpeq;", 0x0224E },
        { "CHcy;", 0x00427 },
        { "COPY;", 0x000A9 },
        { "COPY", 0x000A9 },
        { "Cacute;", 0x00106 },
        { "Cap;", 0x022D2 },
        { "CapitalDifferentialD;", 0x02145 },
        { "Cayleys;", 0x0212D },
        { "Ccaron;", 0x0010C },
        { "Ccedil;", 0x000C7 },
        { "Ccedil", 0x000C7 },
        { "Ccirc;", 0x00108 },
        { "Cconint;", 0x02230 },
        { "Cdot;", 0x0010A },
        { "Cedilla;", 0x000B8 },
        { "CenterDot;", 0x000B7 },
        { "Cfr;", 0x0212D },
        { "Chi;", 0x003A7 },
        { "CircleDot;", 0x02299 },
        { "CircleMinus;", 0x02296 },
        { "CirclePlus;", 0x02295 },
        { "CircleTimes;", 0x02297 },
        { "ClockwiseContourIntegral;", 0x02232 },
        { "CloseCurlyDoubleQuote;", 0x0201D },
        { "CloseCurlyQuote;", 0x02019 },
        { "Colon;", 0x02237 },
        { "Colone;", 0x02A74 },
        { "Congruent;", 0x02261 },
        { "Conint;", 0x0222F },
        { "ContourIntegral;", 0x0222E },
        { "Copf;", 0x02102 },
        { "Coproduct;", 0x02210 },
        { "CounterClockwiseContourIntegral;", 0x02233 },
        { "Cross;", 0x02A2F },
        { "Cscr;", 0x1D49E },
        { "Cup;", 0x022D3 },
        { "CupCap;", 0x0224D },
        { "DD;", 0x02145 },
        { "DDotrahd;", 0x02911 },
        { "DJcy;", 0x00402 },
        { "DScy;", 0x00405 },
        { "DZcy;", 0x0040F },
        { "Dagger;", 0x02021 },
        { "Darr;", 0x021A1 },
        { "Dashv;", 0x02AE4 },
        { "Dcaron;", 0x0010E },
        { "Dcy;", 0x00414 },
        { "Del;", 0x02207 },
        { "Delta;", 0x00394 },
        { "Dfr;", 0x1D507 },
        { "DiacriticalAcute;", 0x000B4 },
        { "DiacriticalDot;", 0x002D9 },
        { "DiacriticalDoubleAcute;", 0x002DD },
        { "DiacriticalGrave;", 0x00060 },
        { "DiacriticalTilde;", 0x002DC },
        { "Diamond;", 0x022C4 },
        { "DifferentialD;", 0x02146 },
        { "Dopf;", 0x1D53B },
        { "Dot;", 0x000A8 },
        { "DotDot;", 0x020DC },
        { "DotEqual;", 0x02250 },
        { "DoubleContourIntegral;", 0x0222F },
        { "DoubleDot;", 0x000A8 },
        { "DoubleDownArrow;", 0x021D3 },
        { "DoubleLeftArrow;", 0x021D0 },
        { "DoubleLeftRightArrow;", 0x021D4 },
        { "DoubleLeftTee;", 0x02AE4 },
        { "DoubleLongLeftArrow;", 0x027F8 },
        { "DoubleLongLeftRightArrow;", 0x027FA },
        { "DoubleLongRightArrow;", 0x027F9 },
        { "DoubleRightArrow;", 0x021D2 },
        { "DoubleRightTee;", 0x022A8 },
        { "DoubleUpArrow;", 0x021D1 },
        { "DoubleUpDownArrow;", 0x021D5 },
        { "DoubleVerticalBar;", 0x02225 },
        { "DownArrow;", 0x02193 },
        { "DownArrowBar;", 0x02913 },
        { "DownArrowUpArrow;", 0x021F5 },
        { "DownBreve;", 0x00311 },
        { "DownLeftRightVector;", 0x02950 },
        { "DownLeftTeeVector;", 0x0295E },
        { "DownLeftVector;", 0x021BD },
        { "DownLeftVectorBar;", 0x02956 },
        { "DownRightTeeVector;", 0x0295F },
        { "DownRightVector;", 0x021C1 },
        { "DownRightVectorBar;", 0x02957 },
        { "DownTee;", 0x022A4 },
        { "DownTeeArrow;", 0x021A7 },
        { "Downarrow;", 0x021D3 },
        { "Dscr;", 0x1D49F },
        { "Dstrok;", 0x00110 },
        { "ENG;", 0x0014A },
        { "ETH;", 0x000D0 },
        { "ETH", 0x000D0 },
        { "Eacute;", 0x000C9 },
        { "Eacute", 0x000C9 },
        { "Ecaron;", 0x0011A },
        { "Ecirc;", 0x000CA },
        { "Ecirc", 0x000CA },
        { "Ecy;", 0x0042D },
        { "Edot;", 0x00116 },
        { "Efr;", 0x1D508 },
        { "Egrave;", 0x000C8 },
        { "Egrave", 0x000C8 },
        { "Element;", 0x02208 },
        { "Emacr;", 0x00112 },
        { "EmptySmallSquare;", 0x025FB },
        { "EmptyVerySmallSquare;", 0x025AB },
        { "Eogon;", 0x00118 },
        { "Eopf;", 0x1D53C },
        { "Epsilon;", 0x00395 },
        { "Equal;", 0x02A75 },
        { "EqualTilde;", 0x02242 },
        { "Equilibrium;", 0x021CC },
        { "Escr;", 0x02130 },
        { "Esim;", 0x02A73 },
        { "Eta;", 0x00397 },
        { "Euml;", 0x000CB },
        { "Euml", 0x000CB },
        { "Exists;", 0x02203 },
        { "ExponentialE;", 0x02147 },
        { "Fcy;", 0x00424 },
        { "Ffr;", 0x1D509 },
        { "FilledSmallSquare;", 0x025FC },
        { "FilledVerySmallSquare;", 0x025AA },
        { "Fopf;", 0x1D53D },
        { "ForAll;", 0x02200 },
        { "Fouriertrf;", 0x02131 },
        { "Fscr;", 0x02131 },
        { "GJcy;", 0x00403 },
        { "GT;", 0x0003E },
        { "GT", 0x0003E },
        { "Gamma;", 0x00393 },
        { "Gammad;", 0x003DC },
        { "Gbreve;", 0x0011E },
        { "Gcedil;", 0x00122 },
        { "Gcirc;", 0x0011C },
        { "Gcy;", 0x00413 },
        { "Gdot;", 0x00120 },
        { "Gfr;", 0x1D50A },
        { "Gg;", 0x022D9 },
        { "Gopf;", 0x1D53E },
        { "GreaterEqual;", 0x02265 },
        { "GreaterEqualLess;", 0x022DB },
        { "GreaterFullEqual;", 0x02267 },
        { "GreaterGreater;", 0x02AA2 },
        { "GreaterLess;", 0x02277 },
        { "GreaterSlantEqual;", 0x02A7E },
        { "GreaterTilde;", 0x02273 },
        { "Gscr;", 0x1D4A2 },
        { "Gt;", 0x0226B },
        { "HARDcy;", 0x0042A },
        { "Hacek;", 0x002C7 },
        { "Hat;", 0x0005E },
        { "Hcirc;", 0x00124 },
        { "Hfr;", 0x0210C },
        { "HilbertSpace;", 0x0210B },
        { "Hopf;", 0x0210D },
        { "HorizontalLine;", 0x02500 },
        { "Hscr;", 0x0210B },
        { "Hstrok;", 0x00126 },
        { "HumpDownHump;", 0x0224E },
        { "HumpEqual;", 0x0224F },
        { "IEcy;", 0x00415 },
        { "IJlig;", 0x00132 },
        { "IOcy;", 0x00401 },
        { "Iacute;", 0x000CD },
        { "Iacute", 0x000CD },
        { "Icirc;", 0x000CE },
        { "Icirc", 0x000CE },
        { "Icy;", 0x00418 },
        { "Idot;", 0x00130 },
        { "Ifr;", 0x02111 },
        { "Igrave;", 0x000CC },
        { "Igrave", 0x000CC },
        { "Im;", 0x02111 },
        { "Imacr;", 0x0012A },
        { "ImaginaryI;", 0x02148 },
        { "Implies;", 0x021D2 },
        { "Int;", 0x0222C },
        { "Integral;", 0x0222B },
        { "Intersection;", 0x022C2 },
        { "InvisibleComma;", 0x02063 },
        { "InvisibleTimes;", 0x02062 },
        { "Iogon;", 0x0012E },
        { "Iopf;", 0x1D540 },
        { "Iota;", 0x00399 },
        { "Iscr;", 0x02110 },
        { "Itilde;", 0x00128 },
        { "Iukcy;", 0x00406 },
        { "Iuml;", 0x000CF },
        { "Iuml", 0x000CF },
        { "Jcirc;", 0x00134 },
        { "Jcy;", 0x00419 },
        { "Jfr;", 0x1D50D },
        { "Jopf;", 0x1D541 },
        { "Jscr;", 0x1D4A5 },
        { "Jsercy;", 0x00408 },
        { "Jukcy;", 0x00404 },
        { "KHcy;", 0x00425 },
        { "KJcy;", 0x0040C },
        { "Kappa;", 0x0039A },
        { "Kcedil;", 0x00136 },
        { "Kcy;", 0x0041A },
        { "Kfr;", 0x1D50E },
        { "Kopf;", 0x1D542 },
        { "Kscr;", 0x1D4A6 },
        { "LJcy;", 0x00409 },
        { "LT;", 0x0003C },
        { "LT", 0x0003C },
        { "Lacute;", 0x00139 },
        { "Lambda;", 0x0039B },
        { "Lang;", 0x027EA },
        { "Laplacetrf;", 0x02112 },
        { "Larr;", 0x0219E },
        { "Lcaron;", 0x0013D },
        { "Lcedil;", 0x0013B },
        { "Lcy;", 0x0041B },
        { "LeftAngleBracket;", 0x027E8 },
        { "LeftArrow;", 0x02190 },
        { "LeftArrowBar;", 0x021E4 },
        { "LeftArrowRightArrow;", 0x021C6 },
        { "LeftCeiling;", 0x02308 },
        { "LeftDoubleBracket;", 0x027E6 },
        { "LeftDownTeeVector;", 0x02961 },
        { "LeftDownVector;", 0x021C3 },
        { "LeftDownVectorBar;", 0x02959 },
        { "LeftFloor;", 0x0230A },
        { "LeftRightArrow;", 0x02194 },
        { "LeftRightVector;", 0x0294E },
        { "LeftTee;", 0x022A3 },
        { "LeftTeeArrow;", 0x021A4 },
        { "LeftTeeVector;", 0x0295A },
        { "LeftTriangle;", 0x022B2 },
        { "LeftTriangleBar;", 0x029CF },
        { "LeftTriangleEqual;", 0x022B4 },
        { "LeftUpDownVector;", 0x02951 },
        { "LeftUpTeeVector;", 0x02960 },
        { "LeftUpVector;", 0x021BF },
        { "LeftUpVectorBar;", 0x02958 },
        { "LeftVector;", 0x021BC },
        { "LeftVectorBar;", 0x02952 },
        { "Leftarrow;", 0x021D0 },
        { "Leftrightarrow;", 0x021D4 },
        { "LessEqualGreater;", 0x022DA },
        { "LessFullEqual;", 0x02266 },
        { "LessGreater;", 0x02276 },
        { "LessLess;", 0x02AA1 },
        { "LessSlantEqual;", 0x02A7D },
        { "LessTilde;", 0x02272 },
        { "Lfr;", 0x1D50F },
        { "Ll;", 0x022D8 },
        { "Lleftarrow;", 0x021DA },
        { "Lmidot;", 0x0013F },
        { "LongLeftArrow;", 0x027F5 },
        { "LongLeftRightArrow;", 0x027F7 },
        { "LongRightArrow;", 0x027F6 },
        { "Longleftarrow;", 0x027F8 },
        { "Longleftrightarrow;", 0x027FA },
        { "Longrightarrow;", 0x027F9 },
        { "Lopf;", 0x1D543 },
        { "LowerLeftArrow;", 0x02199 },
        { "LowerRightArrow;", 0x02198 },
        { "Lscr;", 0x02112 },
        { "Lsh;", 0x021B0 },
        { "Lstrok;", 0x00141 },
        { "Lt;", 0x0226A },
        { "Map;", 0x02905 },
        { "Mcy;", 0x0041C },
        { "MediumSpace;", 0x0205F },
        { "Mellintrf;", 0x02133 },
        { "Mfr;", 0x1D510 },
        { "MinusPlus;", 0x02213 },
        { "Mopf;", 0x1D544 },
        { "Mscr;", 0x02133 },
        { "Mu;", 0x0039C },
        { "NJcy;", 0x0040A },
        { "Nacute;", 0x00143 },
        { "Ncaron;", 0x00147 },
        { "Ncedil;", 0x00145 },
        { "Ncy;", 0x0041D },
        { "NegativeMediumSpace;", 0x0200B },
        { "NegativeThickSpace;", 0x0200B },
        { "NegativeThinSpace;", 0x0200B },
        { "NegativeVeryThinSpace;", 0x0200B },
        { "NestedGreaterGreater;", 0x0226B },
        { "NestedLessLess;", 0x0226A },
        { "NewLine;", 0x0000A },
        { "Nfr;", 0x1D511 },
        { "NoBreak;", 0x02060 },
        { "NonBreakingSpace;", 0x000A0 },
        { "Nopf;", 0x02115 },
        { "Not;", 0x02AEC },
        { "NotCongruent;", 0x02262 },
        { "NotCupCap;", 0x0226D },
        { "NotDoubleVerticalBar;", 0x02226 },
        { "NotElement;", 0x02209 },
        { "NotEqual;", 0x02260 },
        { "NotExists;", 0x02204 },
        { "NotGreater;", 0x0226F },
        { "NotGreaterEqual;", 0x02271 },
        { "NotGreaterLess;", 0x02279 },
        { "NotGreaterTilde;", 0x02275 },
        { "NotLeftTriangle;", 0x022EA },
        { "NotLeftTriangleEqual;", 0x022EC },
        { "NotLess;", 0x0226E },
        { "NotLessEqual;", 0x02270 },
        { "NotLessGreater;", 0x02278 },
        { "NotLessTilde;", 0x02274 },
        { "NotPrecedes;", 0x02280 },
        { "NotPrecedesSlantEqual;", 0x022E0 },
        { "NotReverseElement;", 0x0220C },
        { "NotRightTriangle;", 0x022EB },
        { "NotRightTriangleEqual;", 0x022ED },
        { "NotSquareSubsetEqual;", 0x022E2 },
        { "NotSquareSupersetEqual;", 0x022E3 },
        { "NotSubsetEqual;", 0x02288 },
        { "NotSucceeds;", 0x02281 },
        { "NotSucceedsSlantEqual;", 0x022E1 },
        { "NotSupersetEqual;", 0x02289 },
        { "NotTilde;", 0x02241 },
        { "NotTildeEqual;", 0x02244 },
        { "NotTildeFullEqual;", 0x02247 },
        { "NotTildeTilde;", 0x02249 },
        { "NotVerticalBar;", 0x02224 },
        { "Nscr;", 0x1D4A9 },
        { "Ntilde;", 0x000D1 },
        { "Ntilde", 0x000D1 },
        { "Nu;", 0x0039D },
        { "OElig;", 0x00152 },
        { "Oacute;", 0x000D3 },
        { "Oacute", 0x000D3 },
        { "Ocirc;", 0x000D4 },
        { "Ocirc", 0x000D4 },
        { "Ocy;", 0x0041E },
        { "Odblac;", 0x00150 },
        { "Ofr;", 0x1D512 },
        { "Ograve;", 0x000D2 },
        { "Ograve", 0x000D2 },
        { "Omacr;", 0x0014C },
        { "Omega;", 0x003A9 },
        { "Omicron;", 0x0039F },
        { "Oopf;", 0x1D546 },
        { "OpenCurlyDoubleQuote;", 0x0201C },
        { "OpenCurlyQuote;", 0x02018 },
        { "Or;", 0x02A54 },
        { "Oscr;", 0x1D4AA },
        { "Oslash;", 0x000D8 },
        { "Oslash", 0x000D8 },
        { "Otilde;", 0x000D5 },
        { "Otilde", 0x000D5 },
        { "Otimes;", 0x02A37 },
        { "Ouml;", 0x000D6 },
        { "Ouml", 0x000D6 },
        { "OverBar;", 0x0203E },
        { "OverBrace;", 0x023DE },
        { "OverBracket;", 0x023B4 },
        { "OverParenthesis;", 0x023DC },
        { "PartialD;", 0x02202 },
        { "Pcy;", 0x0041F },
        { "Pfr;", 0x1D513 },
        { "Phi;", 0x003A6 },
        { "Pi;", 0x003A0 },
        { "PlusMinus;", 0x000B1 },
        { "Poincareplane;", 0x0210C },
        { "Popf;", 0x02119 },
        { "Pr;", 0x02ABB },
        { "Precedes;", 0x0227A },
        { "PrecedesEqual;", 0x02AAF },
        { "PrecedesSlantEqual;", 0x0227C },
        { "PrecedesTilde;", 0x0227E },
        { "Prime;", 0x02033 },
        { "Product;", 0x0220F },
        { "Proportion;", 0x02237 },
        { "Proportional;", 0x0221D },
        { "Pscr;", 0x1D4AB },
        { "Psi;", 0x003A8 },
        { "QUOT;", 0x00022 },
        { "QUOT", 0x00022 },
        { "Qfr;", 0x1D514 },
        { "Qopf;", 0x0211A },
        { "Qscr;", 0x1D4AC },
        { "RBarr;", 0x02910 },
        { "REG;", 0x000AE },
        { "REG", 0x000AE },
        { "Racute;", 0x00154 },
        { "Rang;", 0x027EB },
        { "Rarr;", 0x021A0 },
        { "Rarrtl;", 0x02916 },
        { "Rcaron;", 0x00158 },
        { "Rcedil;", 0x00156 },
        { "Rcy;", 0x00420 },
        { "Re;", 0x0211C },
        { "ReverseElement;", 0x0220B },
        { "ReverseEquilibrium;", 0x021CB },
        { "ReverseUpEquilibrium;", 0x0296F },
        { "Rfr;", 0x0211C },
        { "Rho;", 0x003A1 },
        { "RightAngleBracket;", 0x027E9 },
        { "RightArrow;", 0x02192 },
        { "RightArrowBar;", 0x021E5 },
        { "RightArrowLeftArrow;", 0x021C4 },
        { "RightCeiling;", 0x02309 },
        { "RightDoubleBracket;", 0x027E7 },
        { "RightDownTeeVector;", 0x0295D },
        { "RightDownVector;", 0x021C2 },
        { "RightDownVectorBar;", 0x02955 },
        { "RightFloor;", 0x0230B },
        { "RightTee;", 0x022A2 },
        { "RightTeeArrow;", 0x021A6 },
        { "RightTeeVector;", 0x0295B },
        { "RightTriangle;", 0x022B3 },
        { "RightTriangleBar;", 0x029D0 },
        { "RightTriangleEqual;", 0x022B5 },
        { "RightUpDownVector;", 0x0294F },
        { "RightUpTeeVector;", 0x0295C },
        { "RightUpVector;", 0x021BE },
        { "RightUpVectorBar;", 0x02954 },
        { "RightVector;", 0x021C0 },
        { "RightVectorBar;", 0x02953 },
        { "Rightarrow;", 0x021D2 },
        { "Ropf;", 0x0211D },
        { "RoundImplies;", 0x02970 },
        { "Rrightarrow;", 0x021DB },
        { "Rscr;", 0x0211B },
        { "Rsh;", 0x021B1 },
        { "RuleDelayed;", 0x029F4 },
        { "SHCHcy;", 0x00429 },
        { "SHcy;", 0x00428 },
        { "SOFTcy;", 0x0042C },
        { "Sacute;", 0x0015A },
        { "Sc;", 0x02ABC },
        { "Scaron;", 0x00160 },
        { "Scedil;", 0x0015E },
        { "Scirc;", 0x0015C },
        { "Scy;", 0x00421 },
        { "Sfr;", 0x1D516 },
        { "ShortDownArrow;", 0x02193 },
        { "ShortLeftArrow;", 0x02190 },
        { "ShortRightArrow;", 0x02192 },
        { "ShortUpArrow;", 0x02191 },
        { "Sigma;", 0x003A3 },
        { "SmallCircle;", 0x02218 },
        { "Sopf;", 0x1D54A },
        { "Sqrt;", 0x0221A },
        { "Square;", 0x025A1 },
        { "SquareIntersection;", 0x02293 },
        { "SquareSubset;", 0x0228F },
        { "SquareSubsetEqual;", 0x02291 },
        { "SquareSuperset;", 0x02290 },
        { "SquareSupersetEqual;", 0x02292 },
        { "SquareUnion;", 0x02294 },
        { "Sscr;", 0x1D4AE },
        { "Star;", 0x022C6 },
        { "Sub;", 0x022D0 },
        { "Subset;", 0x022D0 },
        { "SubsetEqual;", 0x02286 },
        { "Succeeds;", 0x0227B },
        { "SucceedsEqual;", 0x02AB0 },
        { "SucceedsSlantEqual;", 0x0227D },
        { "SucceedsTilde;", 0x0227F },
        { "SuchThat;", 0x0220B },
        { "Sum;", 0x02211 },
        { "Sup;", 0x022D1 },
        { "Superset;", 0x02283 },
        { "SupersetEqual;", 0x02287 },
        { "Supset;", 0x022D1 },
        { "THORN;", 0x000DE },
        { "THORN", 0x000DE },
        { "TRADE;", 0x02122 },
        { "TSHcy;", 0x0040B },
        { "TScy;", 0x00426 },
        { "Tab;", 0x00009 },
        { "Tau;", 0x003A4 },
        { "Tcaron;", 0x00164 },
        { "Tcedil;", 0x00162 },
        { "Tcy;", 0x00422 },
        { "Tfr;", 0x1D517 },
        { "Therefore;", 0x02234 },
        { "Theta;", 0x00398 },
        { "ThinSpace;", 0x02009 },
        { "Tilde;", 0x0223C },
        { "TildeEqual;", 0x02243 },
        { "TildeFullEqual;", 0x02245 },
        { "TildeTilde;", 0x02248 },
        { "Topf;", 0x1D54B },
        { "TripleDot;", 0x020DB },
        { "Tscr;", 0x1D4AF },
        { "Tstrok;", 0x00166 },
        { "Uacute;", 0x000DA },
        { "Uacute", 0x000DA },
        { "Uarr;", 0x0219F },
        { "Uarrocir;", 0x02949 },
        { "Ubrcy;", 0x0040E },
        { "Ubreve;", 0x0016C },
        { "Ucirc;", 0x000DB },
        { "Ucirc", 0x000DB },
        { "Ucy;", 0x00423 },
        { "Udblac;", 0x00170 },
        { "Ufr;", 0x1D518 },
        { "Ugrave;", 0x000D9 },
        { "Ugrave", 0x000D9 },
        { "Umacr;", 0x0016A },
        { "UnderBar;", 0x0005F },
        { "UnderBrace;", 0x023DF },
        { "UnderBracket;", 0x023B5 },
        { "UnderParenthesis;", 0x023DD },
        { "Union;", 0x022C3 },
        { "UnionPlus;", 0x0228E },
        { "Uogon;", 0x00172 },
        { "Uopf;", 0x1D54C },
        { "UpArrow;", 0x02191 },
        { "UpArrowBar;", 0x02912 },
        { "UpArrowDownArrow;", 0x021C5 },
        { "UpDownArrow;", 0x02195 },
        { "UpEquilibrium;", 0x0296E },
        { "UpTee;", 0x022A5 },
        { "UpTeeArrow;", 0x021A5 },
        { "Uparrow;", 0x021D1 },
        { "Updownarrow;", 0x021D5 },
        { "UpperLeftArrow;", 0x02196 },
        { "UpperRightArrow;", 0x02197 },
        { "Upsi;", 0x003D2 },
        { "Upsilon;", 0x003A5 },
        { "Uring;", 0x0016E },
        { "Uscr;", 0x1D4B0 },
        { "Utilde;", 0x00168 },
        { "Uuml;", 0x000DC },
        { "Uuml", 0x000DC },
        { "VDash;", 0x022AB },
        { "Vbar;", 0x02AEB },
        { "Vcy;", 0x00412 },
        { "Vdash;", 0x022A9 },
        { "Vdashl;", 0x02AE6 },
        { "Vee;", 0x022C1 },
        { "Verbar;", 0x02016 },
        { "Vert;", 0x02016 },
        { "VerticalBar;", 0x02223 },
        { "VerticalLine;", 0x0007C },
        { "VerticalSeparator;", 0x02758 },
        { "VerticalTilde;", 0x02240 },
        { "VeryThinSpace;", 0x0200A },
        { "Vfr;", 0x1D519 },
        { "Vopf;", 0x1D54D },
        { "Vscr;", 0x1D4B1 },
        { "Vvdash;", 0x022AA },
        { "Wcirc;", 0x00174 },
        { "Wedge;", 0x022C0 },
        { "Wfr;", 0x1D51A },
        { "Wopf;", 0x1D54E },
        { "Wscr;", 0x1D4B2 },
        { "Xfr;", 0x1D51B },
        { "Xi;", 0x0039E },
        { "Xopf;", 0x1D54F },
        { "Xscr;", 0x1D4B3 },
        { "YAcy;", 0x0042F },
        { "YIcy;", 0x00407 },
        { "YUcy;", 0x0042E },
        { "Yacute;", 0x000DD },
        { "Yacute", 0x000DD },
        { "Ycirc;", 0x00176 },
        { "Ycy;", 0x0042B },
        { "Yfr;", 0x1D51C },
        { "Yopf;", 0x1D550 },
        { "Yscr;", 0x1D4B4 },
        { "Yuml;", 0x00178 },
        { "ZHcy;", 0x00416 },
        { "Zacute;", 0x00179 },
        { "Zcaron;", 0x0017D },
        { "Zcy;", 0x00417 },
        { "Zdot;", 0x0017B },
        { "ZeroWidthSpace;", 0x0200B },
        { "Zeta;", 0x00396 },
        { "Zfr;", 0x02128 },
        { "Zopf;", 0x02124 },
        { "Zscr;", 0x1D4B5 },
        { "aacute;", 0x000E1 },
        { "aacute", 0x000E1 },
        { "abreve;", 0x00103 },
        { "ac;", 0x0223E },
        { "acd;", 0x0223F },
        { "acirc;", 0x000E2 },
        { "acirc", 0x000E2 },
        { "acute;", 0x000B4 },
        { "acute", 0x000B4 },
        { "acy;", 0x00430 },
        { "aelig;", 0x000E6 },
        { "aelig", 0x000E6 },
        { "af;", 0x02061 },
        { "afr;", 0x1D51E },
        { "agrave;", 0x000E0 },
        { "agrave", 0x000E0 },
        { "alefsym;", 0x02135 },
        { "aleph;", 0x02135 },
        { "alpha;", 0x003B1 },
        { "amacr;", 0x00101 },
        { "amalg;", 0x02A3F },
        { "amp;", 0x00026 },
        { "amp", 0x00026 },
        { "and;", 0x02227 },
        { "andand;", 0x02A55 },
        { "andd;", 0x02A5C },
        { "andslope;", 0x02A58 },
        { "andv;", 0x02A5A },
        { "ang;", 0x02220 },
        { "ange;", 0x029A4 },
        { "angle;", 0x02220 },
        { "angmsd;", 0x02221 },
        { "angmsdaa;", 0x029A8 },
        { "angmsdab;", 0x029A9 },
        { "angmsdac;", 0x029AA },
        { "angmsdad;", 0x029AB },
        { "angmsdae;", 0x029AC },
        { "angmsdaf;", 0x029AD },
        { "angmsdag;", 0x029AE },
        { "angmsdah;", 0x029AF },
        { "angrt;", 0x0221F },
        { "angrtvb;", 0x022BE },
        { "angrtvbd;", 0x0299D },
        { "angsph;", 0x02222 },
        { "angst;", 0x000C5 },
        { "angzarr;", 0x0237C },
        { "aogon;", 0x00105 },
        { "aopf;", 0x1D552 },
        { "ap;", 0x02248 },
        { "apE;", 0x02A70 },
        { "apacir;", 0x02A6F },
        { "ape;", 0x0224A },
        { "apid;", 0x0224B },
        { "apos;", 0x00027 },
        { "approx;", 0x02248 },
        { "approxeq;", 0x0224A },
        { "aring;", 0x000E5 },
        { "aring", 0x000E5 },
        { "ascr;", 0x1D4B6 },
        { "ast;", 0x0002A },
        { "asymp;", 0x02248 },
        { "asympeq;", 0x0224D },
        { "atilde;", 0x000E3 },
        { "atilde", 0x000E3 },
        { "auml;", 0x000E4 },
        { "auml", 0x000E4 },
        { "awconint;", 0x02233 },
        { "awint;", 0x02A11 },
        { "bNot;", 0x02AED },
        { "backcong;", 0x0224C },
        { "backepsilon;", 0x003F6 },
        { "backprime;", 0x02035 },
        { "backsim;", 0x0223D },
        { "backsimeq;", 0x022CD },
        { "barvee;", 0x022BD },
        { "barwed;", 0x02305 },
        { "barwedge;", 0x02305 },
        { "bbrk;", 0x023B5 },
        { "bbrktbrk;", 0x023B6 },
        { "bcong;", 0x0224C },
        { "bcy;", 0x00431 },
        { "bdquo;", 0x0201E },
        { "becaus;", 0x02235 },
        { "because;", 0x02235 },
        { "bemptyv;", 0x029B0 },
        { "bepsi;", 0x003F6 },
        { "bernou;", 0x0212C },
        { "beta;", 0x003B2 },
        { "beth;", 0x02136 },
        { "between;", 0x0226C },
        { "bfr;", 0x1D51F },
        { "bigcap;", 0x022C2 },
        { "bigcirc;", 0x025EF },
        { "bigcup;", 0x022C3 },
        { "bigodot;", 0x02A00 },
        { "bigoplus;", 0x02A01 },
        { "bigotimes;", 0x02A02 },
        { "bigsqcup;", 0x02A06 },
        { "bigstar;", 0x02605 },
        { "bigtriangledown;", 0x025BD },
        { "bigtriangleup;", 0x025B3 },
        { "biguplus;", 0x02A04 },
        { "bigvee;", 0x022C1 },
        { "bigwedge;", 0x022C0 },
        { "bkarow;", 0x0290D },
        { "blacklozenge;", 0x029EB },
        { "blacksquare;", 0x025AA },
        { "blacktriangle;", 0x025B4 },
        { "blacktriangledown;", 0x025BE },
        { "blacktriangleleft;", 0x025C2 },
        { "blacktriangleright;", 0x025B8 },
        { "blank;", 0x02423 },
        { "blk12;", 0x02592 },
        { "blk14;", 0x02591 },
        { "blk34;", 0x02593 },
        { "block;", 0x02588 },
        { "bnot;", 0x02310 },
        { "bopf;", 0x1D553 },
        { "bot;", 0x022A5 },
        { "bottom;", 0x022A5 },
        { "bowtie;", 0x022C8 },
        { "boxDL;", 0x02557 },
        { "boxDR;", 0x02554 },
        { "boxDl;", 0x02556 },
        { "boxDr;", 0x02553 },
        { "boxH;", 0x02550 },
        { "boxHD;", 0x02566 },
        { "boxHU;", 0x02569 },
        { "boxHd;", 0x02564 },
        { "boxHu;", 0x02567 },
        { "boxUL;", 0x0255D },
        { "boxUR;", 0x0255A },
        { "boxUl;", 0x0255C },
        { "boxUr;", 0x02559 },
        { "boxV;", 0x02551 },
        { "boxVH;", 0x0256C },
        { "boxVL;", 0x02563 },
        { "boxVR;", 0x02560 },
        { "boxVh;", 0x0256B },
        { "boxVl;", 0x02562 },
        { "boxVr;", 0x0255F },
        { "boxbox;", 0x029C9 },
        { "boxdL;", 0x02555 },
        { "boxdR;", 0x02552 },
        { "boxdl;", 0x02510 },
        { "boxdr;", 0x0250C },
        { "boxh;", 0x02500 },
        { "boxhD;", 0x02565 },
        { "boxhU;", 0x02568 },
        { "boxhd;", 0x0252C },
        { "boxhu;", 0x02534 },
        { "boxminus;", 0x0229F },
        { "boxplus;", 0x0229E },
        { "boxtimes;", 0x022A0 },
        { "boxuL;", 0x0255B },
        { "boxuR;", 0x02558 },
        { "boxul;", 0x02518 },
        { "boxur;", 0x02514 },
        { "boxv;", 0x02502 },
        { "boxvH;", 0x0256A },
        { "boxvL;", 0x02561 },
        { "boxvR;", 0x0255E },
        { "boxvh;", 0x0253C },
        { "boxvl;", 0x02524 },
        { "boxvr;", 0x0251C },
        { "bprime;", 0x02035 },
        { "breve;", 0x002D8 },
        { "brvbar;", 0x000A6 },
        { "brvbar", 0x000A6 },
        { "bscr;", 0x1D4B7 },
        { "bsemi;", 0x0204F },
        { "bsim;", 0x0223D },
        { "bsime;", 0x022CD },
        { "bsol;", 0x0005C },
        { "bsolb;", 0x029C5 },
        { "bsolhsub;", 0x027C8 },
        { "bull;", 0x02022 },
        { "bullet;", 0x02022 },
        { "bump;", 0x0224E },
        { "bumpE;", 0x02AAE },
        { "bumpe;", 0x0224F },
        { "bumpeq;", 0x0224F },
        { "cacute;", 0x00107 },
        { "cap;", 0x02229 },
        { "capand;", 0x02A44 },
        { "capbrcup;", 0x02A49 },
        { "capcap;", 0x02A4B },
        { "capcup;", 0x02A47 },
        { "capdot;", 0x02A40 },
        { "caret;", 0x02041 },
        { "caron;", 0x002C7 },
        { "ccaps;", 0x02A4D },
        { "ccaron;", 0x0010D },
        { "ccedil;", 0x000E7 },
        { "ccedil", 0x000E7 },
        { "ccirc;", 0x00109 },
        { "ccups;", 0x02A4C },
        { "ccupssm;", 0x02A50 },
        { "cdot;", 0x0010B },
        { "cedil;", 0x000B8 },
        { "cedil", 0x000B8 },
        { "cemptyv;", 0x029B2 },
        { "cent;", 0x000A2 },
        { "cent", 0x000A2 },
        { "centerdot;", 0x000B7 },
        { "cfr;", 0x1D520 },
        { "chcy;", 0x00447 },
        { "check;", 0x02713 },
        { "checkmark;", 0x02713 },
        { "chi;", 0x003C7 },
        { "cir;", 0x025CB },
        { "cirE;", 0x029C3 },
        { "circ;", 0x002C6 },
        { "circeq;", 0x02257 },
        { "circlearrowleft;", 0x021BA },
        { "circlearrowright;", 0x021BB },
        { "circledR;", 0x000AE },
        { "circledS;", 0x024C8 },
        { "circledast;", 0x0229B },
        { "circledcirc;", 0x0229A },
        { "circleddash;", 0x0229D },
        { "cire;", 0x02257 },
        { "cirfnint;", 0x02A10 },
        { "cirmid;", 0x02AEF },
        { "cirscir;", 0x029C2 },
        { "clubs;", 0x02663 },
        { "clubsuit;", 0x02663 },
        { "colon;", 0x0003A },
        { "colone;", 0x02254 },
        { "coloneq;", 0x02254 },
        { "comma;", 0x0002C },
        { "commat;", 0x00040 },
        { "comp;", 0x02201 },
        { "compfn;", 0x02218 },
        { "complement;", 0x02201 },
        { "complexes;", 0x02102 },
        { "cong;", 0x02245 },
        { "congdot;", 0x02A6D },
        { "conint;", 0x0222E },
        { "copf;", 0x1D554 },
        { "coprod;", 0x02210 },
        { "copy;", 0x000A9 },
        { "copy", 0x000A9 },
        { "copysr;", 0x02117 },
        { "crarr;", 0x021B5 },
        { "cross;", 0x02717 },
        { "cscr;", 0x1D4B8 },
        { "csub;", 0x02ACF },
        { "csube;", 0x02AD1 },
        { "csup;", 0x02AD0 },
        { "csupe;", 0x02AD2 },
        { "ctdot;", 0x022EF },
        { "cudarrl;", 0x02938 },
        { "cudarrr;", 0x02935 },
        { "cuepr;", 0x022DE },
        { "cuesc;", 0x022DF },
        { "cularr;", 0x021B6 },
        { "cularrp;", 0x0293D },
        { "cup;", 0x0222A },
        { "cupbrcap;", 0x02A48 },
        { "cupcap;", 0x02A46 },
        { "cupcup;", 0x02A4A },
        { "cupdot;", 0x0228D },
        { "cupor;", 0x02A45 },
        { "curarr;", 0x021B7 },
        { "curarrm;", 0x0293C },
        { "curlyeqprec;", 0x022DE },
        { "curlyeqsucc;", 0x022DF },
        { "curlyvee;", 0x022CE },
        { "curlywedge;", 0x022CF },
        { "curren;", 0x000A4 },
        { "curren", 0x000A4 },
        { "curvearrowleft;", 0x021B6 },
        { "curvearrowright;", 0x021B7 },
        { "cuvee;", 0x022CE },
        { "cuwed;", 0x022CF },
        { "cwconint;", 0x02232 },
        { "cwint;", 0x02231 },
        { "cylcty;", 0x0232D },
        { "dArr;", 0x021D3 },
        { "dHar;", 0x02965 },
        { "dagger;", 0x02020 },
        { "daleth;", 0x02138 },
        { "darr;", 0x02193 },
        { "dash;", 0x02010 },
        { "dashv;", 0x022A3 },
        { "dbkarow;", 0x0290F },
        { "dblac;", 0x002DD },
        { "dcaron;", 0x0010F },
        { "dcy;", 0x00434 },
        { "dd;", 0x02146 },
        { "ddagger;", 0x02021 },
        { "ddarr;", 0x021CA },
        { "ddotseq;", 0x02A77 },
        { "deg;", 0x000B0 },
        { "deg", 0x000B0 },
        { "delta;", 0x003B4 },
        { "demptyv;", 0x029B1 },
        { "dfisht;", 0x0297F },
        { "dfr;", 0x1D521 },
        { "dharl;", 0x021C3 },
        { "dharr;", 0x021C2 },
        { "diam;", 0x022C4 },
        { "diamond;", 0x022C4 },
        { "diamondsuit;", 0x02666 },
        { "diams;", 0x02666 },
        { "die;", 0x000A8 },
        { "digamma;", 0x003DD },
        { "disin;", 0x022F2 },
        { "div;", 0x000F7 },
        { "divide;", 0x000F7 },
        { "divide", 0x000F7 },
        { "divideontimes;", 0x022C7 },
        { "divonx;", 0x022C7 },
        { "djcy;", 0x00452 },
        { "dlcorn;", 0x0231E },
        { "dlcrop;", 0x0230D },
        { "dollar;", 0x00024 },
        { "dopf;", 0x1D555 },
        { "dot;", 0x002D9 },
        { "doteq;", 0x02250 },
        { "doteqdot;", 0x02251 },
        { "dotminus;", 0x02238 },
        { "dotplus;", 0x02214 },
        { "dotsquare;", 0x022A1 },
        { "doublebarwedge;", 0x02306 },
        { "downarrow;", 0x02193 },
        { "downdownarrows;", 0x021CA },
        { "downharpoonleft;", 0x021C3 },
        { "downharpoonright;", 0x021C2 },
        { "drbkarow;", 0x02910 },
        { "drcorn;", 0x0231F },
        { "drcrop;", 0x0230C },
        { "dscr;", 0x1D4B9 },
        { "dscy;", 0x00455 },
        { "dsol;", 0x029F6 },
        { "dstrok;", 0x00111 },
        { "dtdot;", 0x022F1 },
        { "dtri;", 0x025BF },
        { "dtrif;", 0x025BE },
        { "duarr;", 0x021F5 },
        { "duhar;", 0x0296F },
        { "dwangle;", 0x029A6 },
        { "dzcy;", 0x0045F },
        { "dzigrarr;", 0x027FF },
        { "eDDot;", 0x02A77 },
        { "eDot;", 0x02251 },
        { "eacute;", 0x000E9 },
        { "eacute", 0x000E9 },
        { "easter;", 0x02A6E },
        { "ecaron;", 0x0011B },
        { "ecir;", 0x02256 },
        { "ecirc;", 0x000EA },
        { "ecirc", 0x000EA },
        { "ecolon;", 0x02255 },
        { "ecy;", 0x0044D },
        { "edot;", 0x00117 },
        { "ee;", 0x02147 },
        { "efDot;", 0x02252 },
        { "efr;", 0x1D522 },
        { "eg;", 0x02A9A },
        { "egrave;", 0x000E8 },
        { "egrave", 0x000E8 },
        { "egs;", 0x02A96 },
        { "egsdot;", 0x02A98 },
        { "el;", 0x02A99 },
        { "elinters;", 0x023E7 },
        { "ell;", 0x02113 },
        { "els;", 0x02A95 },
        { "elsdot;", 0x02A97 },
        { "emacr;", 0x00113 },
        { "empty;", 0x02205 },
        { "emptyset;", 0x02205 },
        { "emptyv;", 0x02205 },
        { "emsp13;", 0x02004 },
        { "emsp14;", 0x02005 },
        { "emsp;", 0x02003 },
        { "eng;", 0x0014B },
        { "ensp;", 0x02002 },
        { "eogon;", 0x00119 },
        { "eopf;", 0x1D556 },
        { "epar;", 0x022D5 },
        { "eparsl;", 0x029E3 },
        { "eplus;", 0x02A71 },
        { "epsi;", 0x003B5 },
        { "epsilon;", 0x003B5 },
        { "epsiv;", 0x003F5 },
        { "eqcirc;", 0x02256 },
        { "eqcolon;", 0x02255 },
        { "eqsim;", 0x02242 },
        { "eqslantgtr;", 0x02A96 },
        { "eqslantless;", 0x02A95 },
        { "equals;", 0x0003D },
        { "equest;", 0x0225F },
        { "equiv;", 0x02261 },
        { "equivDD;", 0x02A78 },
        { "eqvparsl;", 0x029E5 },
        { "erDot;", 0x02253 },
        { "erarr;", 0x02971 },
        { "escr;", 0x0212F },
        { "esdot;", 0x02250 },
        { "esim;", 0x02242 },
        { "eta;", 0x003B7 },
        { "eth;", 0x000F0 },
        { "eth", 0x000F0 },
        { "euml;", 0x000EB },
        { "euml", 0x000EB },
        { "euro;", 0x020AC },
        { "excl;", 0x00021 },
        { "exist;", 0x02203 },
        { "expectation;", 0x02130 },
        { "exponentiale;", 0x02147 },
        { "fallingdotseq;", 0x02252 },
        { "fcy;", 0x00444 },
        { "female;", 0x02640 },
        { "ffilig;", 0x0FB03 },
        { "fflig;", 0x0FB00 },
        { "ffllig;", 0x0FB04 },
        { "ffr;", 0x1D523 },
        { "filig;", 0x0FB01 },
        { "flat;", 0x0266D },
        { "fllig;", 0x0FB02 },
        { "fltns;", 0x025B1 },
        { "fnof;", 0x00192 },
        { "fopf;", 0x1D557 },
        { "forall;", 0x02200 },
        { "fork;", 0x022D4 },
        { "forkv;", 0x02AD9 },
        { "fpartint;", 0x02A0D },
        { "frac12;", 0x000BD },
        { "frac12", 0x000BD },
        { "frac13;", 0x02153 },
        { "frac14;", 0x000BC },
        { "frac14", 0x000BC },
        { "frac15;", 0x02155 },
        { "frac16;", 0x02159 },
        { "frac18;", 0x0215B },
        { "frac23;", 0x02154 },
        { "frac25;", 0x02156 },
        { "frac34;", 0x000BE },
        { "frac34", 0x000BE },
        { "frac35;", 0x02157 },
        { "frac38;", 0x0215C },
        { "frac45;", 0x02158 },
        { "frac56;", 0x0215A },
        { "frac58;", 0x0215D },
        { "frac78;", 0x0215E },
        { "frasl;", 0x02044 },
        { "frown;", 0x02322 },
        { "fscr;", 0x1D4BB },
        { "gE;", 0x02267 },
        { "gEl;", 0x02A8C },
        { "gacute;", 0x001F5 },
        { "gamma;", 0x003B3 },
        { "gammad;", 0x003DD },
        { "gap;", 0x02A86 },
        { "gbreve;", 0x0011F },
        { "gcirc;", 0x0011D },
        { "gcy;", 0x00433 },
        { "gdot;", 0x00121 },
        { "ge;", 0x02265 },
        { "gel;", 0x022DB },
        { "geq;", 0x02265 },
        { "geqq;", 0x02267 },
        { "geqslant;", 0x02A7E },
        { "ges;", 0x02A7E },
        { "gescc;", 0x02AA9 },
        { "gesdot;", 0x02A80 },
        { "gesdoto;", 0x02A82 },
        { "gesdotol;", 0x02A84 },
        { "gesles;", 0x02A94 },
        { "gfr;", 0x1D524 },
        { "gg;", 0x0226B },
        { "ggg;", 0x022D9 },
        { "gimel;", 0x02137 },
        { "gjcy;", 0x00453 },
        { "gl;", 0x02277 },
        { "glE;", 0x02A92 },
        { "gla;", 0x02AA5 },
        { "glj;", 0x02AA4 },
        { "gnE;", 0x02269 },
        { "gnap;", 0x02A8A },
        { "gnapprox;", 0x02A8A },
        { "gne;", 0x02A88 },
        { "gneq;", 0x02A88 },
        { "gneqq;", 0x02269 },
        { "gnsim;", 0x022E7 },
        { "gopf;", 0x1D558 },
        { "grave;", 0x00060 },
        { "gscr;", 0x0210A },
        { "gsim;", 0x02273 },
        { "gsime;", 0x02A8E },
        { "gsiml;", 0x02A90 },
        { "gt;", 0x0003E },
        { "gt", 0x0003E },
        { "gtcc;", 0x02AA7 },
        { "gtcir;", 0x02A7A },
        { "gtdot;", 0x022D7 },
        { "gtlPar;", 0x02995 },
        { "gtquest;", 0x02A7C },
        { "gtrapprox;", 0x02A86 },
        { "gtrarr;", 0x02978 },
        { "gtrdot;", 0x022D7 },
        { "gtreqless;", 0x022DB },
        { "gtreqqless;", 0x02A8C },
        { "gtrless;", 0x02277 },
        { "gtrsim;", 0x02273 },
        { "hArr;", 0x021D4 },
        { "hairsp;", 0x0200A },
        { "half;", 0x000BD },
        { "hamilt;", 0x0210B },
        { "hardcy;", 0x0044A },
        { "harr;", 0x02194 },
        { "harrcir;", 0x02948 },
        { "harrw;", 0x021AD },
        { "hbar;", 0x0210F },
        { "hcirc;", 0x00125 },
        { "hearts;", 0x02665 },
        { "heartsuit;", 0x02665 },
        { "hellip;", 0x02026 },
        { "hercon;", 0x022B9 },
        { "hfr;", 0x1D525 },
        { "hksearow;", 0x02925 },
        { "hkswarow;", 0x02926 },
        { "hoarr;", 0x021FF },
        { "homtht;", 0x0223B },
        { "hookleftarrow;", 0x021A9 },
        { "hookrightarrow;", 0x021AA },
        { "hopf;", 0x1D559 },
        { "horbar;", 0x02015 },
        { "hscr;", 0x1D4BD },
        { "hslash;", 0x0210F },
        { "hstrok;", 0x00127 },
        { "hybull;", 0x02043 },
        { "hyphen;", 0x02010 },
        { "iacute;", 0x000ED },
        { "iacute", 0x000ED },
        { "ic;", 0x02063 },
        { "icirc;", 0x000EE },
        { "icirc", 0x000EE },
        { "icy;", 0x00438 },
        { "iecy;", 0x00435 },
        { "iexcl;", 0x000A1 },
        { "iexcl", 0x000A1 },
        { "iff;", 0x021D4 },
        { "ifr;", 0x1D526 },
        { "igrave;", 0x000EC },
        { "igrave", 0x000EC },
        { "ii;", 0x02148 },
        { "iiiint;", 0x02A0C },
        { "iiint;", 0x0222D },
        { "iinfin;", 0x029DC },
        { "iiota;", 0x02129 },
        { "ijlig;", 0x00133 },
        { "imacr;", 0x0012B },
        { "image;", 0x02111 },
        { "imagline;", 0x02110 },
        { "imagpart;", 0x02111 },
        { "imath;", 0x00131 },
        { "imof;", 0x022B7 },
        { "imped;", 0x001B5 },
        { "in;", 0x02208 },
        { "incare;", 0x02105 },
        { "infin;", 0x0221E },
        { "infintie;", 0x029DD },
        { "inodot;", 0x00131 },
        { "int;", 0x0222B },
        { "intcal;", 0x022BA },
        { "integers;", 0x02124 },
        { "intercal;", 0x022BA },
        { "intlarhk;", 0x02A17 },
        { "intprod;", 0x02A3C },
        { "iocy;", 0x00451 },
        { "iogon;", 0x0012F },
        { "iopf;", 0x1D55A },
        { "iota;", 0x003B9 },
        { "iprod;", 0x02A3C },
        { "iquest;", 0x000BF },
        { "iquest", 0x000BF },
        { "iscr;", 0x1D4BE },
        { "isin;", 0x02208 },
        { "isinE;", 0x022F9 },
        { "isindot;", 0x022F5 },
        { "isins;", 0x022F4 },
        { "isinsv;", 0x022F3 },
        { "isinv;", 0x02208 },
        { "it;", 0x02062 },
        { "itilde;", 0x00129 },
        { "iukcy;", 0x00456 },
        { "iuml;", 0x000EF },
        { "iuml", 0x000EF },
        { "jcirc;", 0x00135 },
        { "jcy;", 0x00439 },
        { "jfr;", 0x1D527 },
        { "jmath;", 0x00237 },
        { "jopf;", 0x1D55B },
        { "jscr;", 0x1D4BF },
        { "jsercy;", 0x00458 },
        { "jukcy;", 0x00454 },
        { "kappa;", 0x003BA },
        { "kappav;", 0x003F0 },
        { "kcedil;", 0x00137 },
        { "kcy;", 0x0043A },
        { "kfr;", 0x1D528 },
        { "kgreen;", 0x00138 },
        { "khcy;", 0x00445 },
        { "kjcy;", 0x0045C },
        { "kopf;", 0x1D55C },
        { "kscr;", 0x1D4C0 },
        { "lAarr;", 0x021DA },
        { "lArr;", 0x021D0 },
        { "lAtail;", 0x0291B },
        { "lBarr;", 0x0290E },
        { "lE;", 0x02266 },
        { "lEg;", 0x02A8B },
        { "lHar;", 0x02962 },
        { "lacute;", 0x0013A },
        { "laemptyv;", 0x029B4 },
        { "lagran;", 0x02112 },
        { "lambda;", 0x003BB },
        { "lang;", 0x027E8 },
        { "langd;", 0x02991 },
        { "langle;", 0x027E8 },
        { "lap;", 0x02A85 },
        { "laquo;", 0x000AB },
        { "laquo", 0x000AB },
        { "larr;", 0x02190 },
        { "larrb;", 0x021E4 },
        { "larrbfs;", 0x0291F },
        { "larrfs;", 0x0291D },
        { "larrhk;", 0x021A9 },
        { "larrlp;", 0x021AB },
        { "larrpl;", 0x02939 },
        { "larrsim;", 0x02973 },
        { "larrtl;", 0x021A2 },
        { "lat;", 0x02AAB },
        { "latail;", 0x02919 },
        { "late;", 0x02AAD },
        { "lbarr;", 0x0290C },
        { "lbbrk;", 0x02772 },
        { "lbrace;", 0x0007B },
        { "lbrack;", 0x0005B },
        { "lbrke;", 0x0298B },
        { "lbrksld;", 0x0298F },
        { "lbrkslu;", 0x0298D },
        { "lcaron;", 0x0013E },
        { "lcedil;", 0x0013C },
        { "lceil;", 0x02308 },
        { "lcub;", 0x0007B },
        { "lcy;", 0x0043B },
        { "ldca;", 0x02936 },
        { "ldquo;", 0x0201C },
        { "ldquor;", 0x0201E },
        { "ldrdhar;", 0x02967 },
        { "ldrushar;", 0x0294B },
        { "ldsh;", 0x021B2 },
        { "le;", 0x02264 },
        { "leftarrow;", 0x02190 },
        { "leftarrowtail;", 0x021A2 },
        { "leftharpoondown;", 0x021BD },
        { "leftharpoonup;", 0x021BC },
        { "leftleftarrows;", 0x021C7 },
        { "leftrightarrow;", 0x02194 },
        { "leftrightarrows;", 0x021C6 },
        { "leftrightharpoons;", 0x021CB },
        { "leftrightsquigarrow;", 0x021AD },
        { "leftthreetimes;", 0x022CB },
        { "leg;", 0x022DA },
        { "leq;", 0x02264 },
        { "leqq;", 0x02266 },
        { "leqslant;", 0x02A7D },
        { "les;", 0x02A7D },
        { "lescc;", 0x02AA8 },
        { "lesdot;", 0x02A7F },
        { "lesdoto;", 0x02A81 },
        { "lesdotor;", 0x02A83 },
        { "lesges;", 0x02A93 },
        { "lessapprox;", 0x02A85 },
        { "lessdot;", 0x022D6 },
        { "lesseqgtr;", 0x022DA },
        { "lesseqqgtr;", 0x02A8B },
        { "lessgtr;", 0x02276 },
        { "lesssim;", 0x02272 },
        { "lfisht;", 0x0297C },
        { "lfloor;", 0x0230A },
        { "lfr;", 0x1D529 },
        { "lg;", 0x02276 },
        { "lgE;", 0x02A91 },
        { "lhard;", 0x021BD },
        { "lharu;", 0x021BC },
        { "lharul;", 0x0296A },
        { "lhblk;", 0x02584 },
        { "ljcy;", 0x00459 },
        { "ll;", 0x0226A },
        { "llarr;", 0x021C7 },
        { "llcorner;", 0x0231E },
        { "llhard;", 0x0296B },
        { "lltri;", 0x025FA },
        { "lmidot;", 0x00140 },
        { "lmoust;", 0x023B0 },
        { "lmoustache;", 0x023B0 },
        { "lnE;", 0x02268 },
        { "lnap;", 0x02A89 },
        { "lnapprox;", 0x02A89 },
        { "lne;", 0x02A87 },
        { "lneq;", 0x02A87 },
        { "lneqq;", 0x02268 },
        { "lnsim;", 0x022E6 },
        { "loang;", 0x027EC },
        { "loarr;", 0x021FD },
        { "lobrk;", 0x027E6 },
        { "longleftarrow;", 0x027F5 },
        { "longleftrightarrow;", 0x027F7 },
        { "longmapsto;", 0x027FC },
        { "longrightarrow;", 0x027F6 },
        { "looparrowleft;", 0x021AB },
        { "looparrowright;", 0x021AC },
        { "lopar;", 0x02985 },
        { "lopf;", 0x1D55D },
        { "loplus;", 0x02A2D },
        { "lotimes;", 0x02A34 },
        { "lowast;", 0x02217 },
        { "lowbar;", 0x0005F },
        { "loz;", 0x025CA },
        { "lozenge;", 0x025CA },
        { "lozf;", 0x029EB },
        { "lpar;", 0x00028 },
        { "lparlt;", 0x02993 },
        { "lrarr;", 0x021C6 },
        { "lrcorner;", 0x0231F },
        { "lrhar;", 0x021CB },
        { "lrhard;", 0x0296D },
        { "lrm;", 0x0200E },
        { "lrtri;", 0x022BF },
        { "lsaquo;", 0x02039 },
        { "lscr;", 0x1D4C1 },
        { "lsh;", 0x021B0 },
        { "lsim;", 0x02272 },
        { "lsime;", 0x02A8D },
        { "lsimg;", 0x02A8F },
        { "lsqb;", 0x0005B },
        { "lsquo;", 0x02018 },
        { "lsquor;", 0x0201A },
        { "lstrok;", 0x00142 },
        { "lt;", 0x0003C },
        { "lt", 0x0003C },
        { "ltcc;", 0x02AA6 },
        { "ltcir;", 0x02A79 },
        { "ltdot;", 0x022D6 },
        { "lthree;", 0x022CB },
        { "ltimes;", 0x022C9 },
        { "ltlarr;", 0x02976 },
        { "ltquest;", 0x02A7B },
        { "ltrPar;", 0x02996 },
        { "ltri;", 0x025C3 },
        { "ltrie;", 0x022B4 },
        { "ltrif;", 0x025C2 },
        { "lurdshar;", 0x0294A },
        { "luruhar;", 0x02966 },
        { "mDDot;", 0x0223A },
        { "macr;", 0x000AF },
        { "macr", 0x000AF },
        { "male;", 0x02642 },
        { "malt;", 0x02720 },
        { "maltese;", 0x02720 },
        { "map;", 0x021A6 },
        { "mapsto;", 0x021A6 },
        { "mapstodown;", 0x021A7 },
        { "mapstoleft;", 0x021A4 },
        { "mapstoup;", 0x021A5 },
        { "marker;", 0x025AE },
        { "mcomma;", 0x02A29 },
        { "mcy;", 0x0043C },
        { "mdash;", 0x02014 },
        { "measuredangle;", 0x02221 },
        { "mfr;", 0x1D52A },
        { "mho;", 0x02127 },
        { "micro;", 0x000B5 },
        { "micro", 0x000B5 },
        { "mid;", 0x02223 },
        { "midast;", 0x0002A },
        { "midcir;", 0x02AF0 },
        { "middot;", 0x000B7 },
        { "middot", 0x000B7 },
        { "minus;", 0x02212 },
        { "minusb;", 0x0229F },
        { "minusd;", 0x02238 },
        { "minusdu;", 0x02A2A },
        { "mlcp;", 0x02ADB },
        { "mldr;", 0x02026 },
        { "mnplus;", 0x02213 },
        { "models;", 0x022A7 },
        { "mopf;", 0x1D55E },
        { "mp;", 0x02213 },
        { "mscr;", 0x1D4C2 },
        { "mstpos;", 0x0223E },
        { "mu;", 0x003BC },
        { "multimap;", 0x022B8 },
        { "mumap;", 0x022B8 },
        { "nLeftarrow;", 0x021CD },
        { "nLeftrightarrow;", 0x021CE },
        { "nRightarrow;", 0x021CF },
        { "nVDash;", 0x022AF },
        { "nVdash;", 0x022AE },
        { "nabla;", 0x02207 },
        { "nacute;", 0x00144 },
        { "nap;", 0x02249 },
        { "napos;", 0x00149 },
        { "napprox;", 0x02249 },
        { "natur;", 0x0266E },
        { "natural;", 0x0266E },
        { "naturals;", 0x02115 },
        { "nbsp;", 0x000A0 },
        { "nbsp", 0x000A0 },
        { "ncap;", 0x02A43 },
        { "ncaron;", 0x00148 },
        { "ncedil;", 0x00146 },
        { "ncong;", 0x02247 },
        { "ncup;", 0x02A42 },
        { "ncy;", 0x0043D },
        { "ndash;", 0x02013 },
        { "ne;", 0x02260 },
        { "neArr;", 0x021D7 },
        { "nearhk;", 0x02924 },
        { "nearr;", 0x02197 },
        { "nearrow;", 0x02197 },
        { "nequiv;", 0x02262 },
        { "nesear;", 0x02928 },
        { "nexist;", 0x02204 },
        { "nexists;", 0x02204 },
        { "nfr;", 0x1D52B },
        { "nge;", 0x02271 },
        { "ngeq;", 0x02271 },
        { "ngsim;", 0x02275 },
        { "ngt;", 0x0226F },
        { "ngtr;", 0x0226F },
        { "nhArr;", 0x021CE },
        { "nharr;", 0x021AE },
        { "nhpar;", 0x02AF2 },
        { "ni;", 0x0220B },
        { "nis;", 0x022FC },
        { "nisd;", 0x022FA },
        { "niv;", 0x0220B },
        { "njcy;", 0x0045A },
        { "nlArr;", 0x021CD },
        { "nlarr;", 0x0219A },
        { "nldr;", 0x02025 },
        { "nle;", 0x02270 },
        { "nleftarrow;", 0x0219A },
        { "nleftrightarrow;", 0x021AE },
        { "nleq;", 0x02270 },
        { "nless;", 0x0226E },
        { "nlsim;", 0x02274 },
        { "nlt;", 0x0226E },
        { "nltri;", 0x022EA },
        { "nltrie;", 0x022EC },
        { "nmid;", 0x02224 },
        { "nopf;", 0x1D55F },
        { "not;", 0x000AC },
        { "not", 0x000AC },
        { "notin;", 0x02209 },
        { "notinva;", 0x02209 },
        { "notinvb;", 0x022F7 },
        { "notinvc;", 0x022F6 },
        { "notni;", 0x0220C },
        { "notniva;", 0x0220C },
        { "notnivb;", 0x022FE },
        { "notnivc;", 0x022FD },
        { "npar;", 0x02226 },
        { "nparallel;", 0x02226 },
        { "npolint;", 0x02A14 },
        { "npr;", 0x02280 },
        { "nprcue;", 0x022E0 },
        { "nprec;", 0x02280 },
        { "nrArr;", 0x021CF },
        { "nrarr;", 0x0219B },
        { "nrightarrow;", 0x0219B },
        { "nrtri;", 0x022EB },
        { "nrtrie;", 0x022ED },
        { "nsc;", 0x02281 },
        { "nsccue;", 0x022E1 },
        { "nscr;", 0x1D4C3 },
        { "nshortmid;", 0x02224 },
        { "nshortparallel;", 0x02226 },
        { "nsim;", 0x02241 },
        { "nsime;", 0x02244 },
        { "nsimeq;", 0x02244 },
        { "nsmid;", 0x02224 },
        { "nspar;", 0x02226 },
        { "nsqsube;", 0x022E2 },
        { "nsqsupe;", 0x022E3 },
        { "nsub;", 0x02284 },
        { "nsube;", 0x02288 },
        { "nsubseteq;", 0x02288 },
        { "nsucc;", 0x02281 },
        { "nsup;", 0x02285 },
        { "nsupe;", 0x02289 },
        { "nsupseteq;", 0x02289 },
        { "ntgl;", 0x02279 },
        { "ntilde;", 0x000F1 },
        { "ntilde", 0x000F1 },
        { "ntlg;", 0x02278 },
        { "ntriangleleft;", 0x022EA },
        { "ntrianglelefteq;", 0x022EC },
        { "ntriangleright;", 0x022EB },
        { "ntrianglerighteq;", 0x022ED },
        { "nu;", 0x003BD },
        { "num;", 0x00023 },
        { "numero;", 0x02116 },
        { "numsp;", 0x02007 },
        { "nvDash;", 0x022AD },
        { "nvHarr;", 0x02904 },
        { "nvdash;", 0x022AC },
        { "nvinfin;", 0x029DE },
        { "nvlArr;", 0x02902 },
        { "nvrArr;", 0x02903 },
        { "nwArr;", 0x021D6 },
        { "nwarhk;", 0x02923 },
        { "nwarr;", 0x02196 },
        { "nwarrow;", 0x02196 },
        { "nwnear;", 0x02927 },
        { "oS;", 0x024C8 },
        { "oacute;", 0x000F3 },
        { "oacute", 0x000F3 },
        { "oast;", 0x0229B },
        { "ocir;", 0x0229A },
        { "ocirc;", 0x000F4 },
        { "ocirc", 0x000F4 },
        { "ocy;", 0x0043E },
        { "odash;", 0x0229D },
        { "odblac;", 0x00151 },
        { "odiv;", 0x02A38 },
        { "odot;", 0x02299 },
        { "odsold;", 0x029BC },
        { "oelig;", 0x00153 },
        { "ofcir;", 0x029BF },
        { "ofr;", 0x1D52C },
        { "ogon;", 0x002DB },
        { "ograve;", 0x000F2 },
        { "ograve", 0x000F2 },
        { "ogt;", 0x029C1 },
        { "ohbar;", 0x029B5 },
        { "ohm;", 0x003A9 },
        { "oint;", 0x0222E },
        { "olarr;", 0x021BA },
        { "olcir;", 0x029BE },
        { "olcross;", 0x029BB },
        { "oline;", 0x0203E },
        { "olt;", 0x029C0 },
        { "omacr;", 0x0014D },
        { "omega;", 0x003C9 },
        { "omicron;", 0x003BF },
        { "omid;", 0x029B6 },
        { "ominus;", 0x02296 },
        { "oopf;", 0x1D560 },
        { "opar;", 0x029B7 },
        { "operp;", 0x029B9 },
        { "oplus;", 0x02295 },
        { "or;", 0x02228 },
        { "orarr;", 0x021BB },
        { "ord;", 0x02A5D },
        { "order;", 0x02134 },
        { "orderof;", 0x02134 },
        { "ordf;", 0x000AA },
        { "ordf", 0x000AA },
        { "ordm;", 0x000BA },
        { "ordm", 0x000BA },
        { "origof;", 0x022B6 },
        { "oror;", 0x02A56 },
        { "orslope;", 0x02A57 },
        { "orv;", 0x02A5B },
        { "oscr;", 0x02134 },
        { "oslash;", 0x000F8 },
        { "oslash", 0x000F8 },
        { "osol;", 0x02298 },
        { "otilde;", 0x000F5 },
        { "otilde", 0x000F5 },
        { "otimes;", 0x02297 },
        { "otimesas;", 0x02A36 },
        { "ouml;", 0x000F6 },
        { "ouml", 0x000F6 },
        { "ovbar;", 0x0233D },
        { "par;", 0x02225 },
        { "para;", 0x000B6 },
        { "para", 0x000B6 },
        { "parallel;", 0x02225 },
        { "parsim;", 0x02AF3 },
        { "parsl;", 0x02AFD },
        { "part;", 0x02202 },
        { "pcy;", 0x0043F },
        { "percnt;", 0x00025 },
        { "period;", 0x0002E },
        { "permil;", 0x02030 },
        { "perp;", 0x022A5 },
        { "pertenk;", 0x02031 },
        { "pfr;", 0x1D52D },
        { "phi;", 0x003C6 },
        { "phiv;", 0x003D5 },
        { "phmmat;", 0x02133 },
        { "phone;", 0x0260E },
        { "pi;", 0x003C0 },
        { "pitchfork;", 0x022D4 },
        { "piv;", 0x003D6 },
        { "planck;", 0x0210F },
        { "planckh;", 0x0210E },
        { "plankv;", 0x0210F },
        { "plus;", 0x0002B },
        { "plusacir;", 0x02A23 },
        { "plusb;", 0x0229E },
        { "pluscir;", 0x02A22 },
        { "plusdo;", 0x02214 },
        { "plusdu;", 0x02A25 },
        { "pluse;", 0x02A72 },
        { "plusmn;", 0x000B1 },
        { "plusmn", 0x000B1 },
        { "plussim;", 0x02A26 },
        { "plustwo;", 0x02A27 },
        { "pm;", 0x000B1 },
        { "pointint;", 0x02A15 },
        { "popf;", 0x1D561 },
        { "pound;", 0x000A3 },
        { "pound", 0x000A3 },
        { "pr;", 0x0227A },
        { "prE;", 0x02AB3 },
        { "prap;", 0x02AB7 },
        { "prcue;", 0x0227C },
        { "pre;", 0x02AAF },
        { "prec;", 0x0227A },
        { "precapprox;", 0x02AB7 },
        { "preccurlyeq;", 0x0227C },
        { "preceq;", 0x02AAF },
        { "precnapprox;", 0x02AB9 },
        { "precneqq;", 0x02AB5 },
        { "precnsim;", 0x022E8 },
        { "precsim;", 0x0227E },
        { "prime;", 0x02032 },
        { "primes;", 0x02119 },
        { "prnE;", 0x02AB5 },
        { "prnap;", 0x02AB9 },
        { "prnsim;", 0x022E8 },
        { "prod;", 0x0220F },
        { "profalar;", 0x0232E },
        { "profline;", 0x02312 },
        { "profsurf;", 0x02313 },
        { "prop;", 0x0221D },
        { "propto;", 0x0221D },
        { "prsim;", 0x0227E },
        { "prurel;", 0x022B0 },
        { "pscr;", 0x1D4C5 },
        { "psi;", 0x003C8 },
        { "puncsp;", 0x02008 },
        { "qfr;", 0x1D52E },
        { "qint;", 0x02A0C },
        { "qopf;", 0x1D562 },
        { "qprime;", 0x02057 },
        { "qscr;", 0x1D4C6 },
        { "quaternions;", 0x0210D },
        { "quatint;", 0x02A16 },
        { "quest;", 0x0003F },
        { "questeq;", 0x0225F },
        { "quot;", 0x00022 },
        { "quot", 0x00022 },
        { "rAarr;", 0x021DB },
        { "rArr;", 0x021D2 },
        { "rAtail;", 0x0291C },
        { "rBarr;", 0x0290F },
        { "rHar;", 0x02964 },
        { "racute;", 0x00155 },
        { "radic;", 0x0221A },
        { "raemptyv;", 0x029B3 },
        { "rang;", 0x027E9 },
        { "rangd;", 0x02992 },
        { "range;", 0x029A5 },
        { "rangle;", 0x027E9 },
        { "raquo;", 0x000BB },
        { "raquo", 0x000BB },
        { "rarr;", 0x02192 },
        { "rarrap;", 0x02975 },
        { "rarrb;", 0x021E5 },
        { "rarrbfs;", 0x02920 },
        { "rarrc;", 0x02933 },
        { "rarrfs;", 0x0291E },
        { "rarrhk;", 0x021AA },
        { "rarrlp;", 0x021AC },
        { "rarrpl;", 0x02945 },
        { "rarrsim;", 0x02974 },
        { "rarrtl;", 0x021A3 },
        { "rarrw;", 0x0219D },
        { "ratail;", 0x0291A },
        { "ratio;", 0x02236 },
        { "rationals;", 0x0211A },
        { "rbarr;", 0x0290D },
        { "rbbrk;", 0x02773 },
        { "rbrace;", 0x0007D },
        { "rbrack;", 0x0005D },
        { "rbrke;", 0x0298C },
        { "rbrksld;", 0x0298E },
        { "rbrkslu;", 0x02990 },
        { "rcaron;", 0x00159 },
        { "rcedil;", 0x00157 },
        { "rceil;", 0x02309 },
        { "rcub;", 0x0007D },
        { "rcy;", 0x00440 },
        { "rdca;", 0x02937 },
        { "rdldhar;", 0x02969 },
        { "rdquo;", 0x0201D },
        { "rdquor;", 0x0201D },
        { "rdsh;", 0x021B3 },
        { "real;", 0x0211C },
        { "realine;", 0x0211B },
        { "realpart;", 0x0211C },
        { "reals;", 0x0211D },
        { "rect;", 0x025AD },
        { "reg;", 0x000AE },
        { "reg", 0x000AE },
        { "rfisht;", 0x0297D },
        { "rfloor;", 0x0230B },
        { "rfr;", 0x1D52F },
        { "rhard;", 0x021C1 },
        { "rharu;", 0x021C0 },
        { "rharul;", 0x0296C },
        { "rho;", 0x003C1 },
        { "rhov;", 0x003F1 },
        { "rightarrow;", 0x02192 },
        { "rightarrowtail;", 0x021A3 },
        { "rightharpoondown;", 0x021C1 },
        { "rightharpoonup;", 0x021C0 },
        { "rightleftarrows;", 0x021C4 },
        { "rightleftharpoons;", 0x021CC },
        { "rightrightarrows;", 0x021C9 },
        { "rightsquigarrow;", 0x0219D },
        { "rightthreetimes;", 0x022CC },
        { "ring;", 0x002DA },
        { "risingdotseq;", 0x02253 },
        { "rlarr;", 0x021C4 },
        { "rlhar;", 0x021CC },
        { "rlm;", 0x0200F },
        { "rmoust;", 0x023B1 },
        { "rmoustache;", 0x023B1 },
        { "rnmid;", 0x02AEE },
        { "roang;", 0x027ED },
        { "roarr;", 0x021FE },
        { "robrk;", 0x027E7 },
        { "ropar;", 0x02986 },
        { "ropf;", 0x1D563 },
        { "roplus;", 0x02A2E },
        { "rotimes;", 0x02A35 },
        { "rpar;", 0x00029 },
        { "rpargt;", 0x02994 },
        { "rppolint;", 0x02A12 },
        { "rrarr;", 0x021C9 },
        { "rsaquo;", 0x0203A },
        { "rscr;", 0x1D4C7 },
        { "rsh;", 0x021B1 },
        { "rsqb;", 0x0005D },
        { "rsquo;", 0x02019 },
        { "rsquor;", 0x02019 },
        { "rthree;", 0x022CC },
        { "rtimes;", 0x022CA },
        { "rtri;", 0x025B9 },
        { "rtrie;", 0x022B5 },
        { "rtrif;", 0x025B8 },
        { "rtriltri;", 0x029CE },
        { "ruluhar;", 0x02968 },
        { "rx;", 0x0211E },
        { "sacute;", 0x0015B },
        { "sbquo;", 0x0201A },
        { "sc;", 0x0227B },
        { "scE;", 0x02AB4 },
        { "scap;", 0x02AB8 },
        { "scaron;", 0x00161 },
        { "sccue;", 0x0227D },
        { "sce;", 0x02AB0 },
        { "scedil;", 0x0015F },
        { "scirc;", 0x0015D },
        { "scnE;", 0x02AB6 },
        { "scnap;", 0x02ABA },
        { "scnsim;", 0x022E9 },
        { "scpolint;", 0x02A13 },
        { "scsim;", 0x0227F },
        { "scy;", 0x00441 },
        { "sdot;", 0x022C5 },
        { "sdotb;", 0x022A1 },
        { "sdote;", 0x02A66 },
        { "seArr;", 0x021D8 },
        { "searhk;", 0x02925 },
        { "searr;", 0x02198 },
        { "searrow;", 0x02198 },
        { "sect;", 0x000A7 },
        { "sect", 0x000A7 },
        { "semi;", 0x0003B },
        { "seswar;", 0x02929 },
        { "setminus;", 0x02216 },
        { "setmn;", 0x02216 },
        { "sext;", 0x02736 },
        { "sfr;", 0x1D530 },
        { "sfrown;", 0x02322 },
        { "sharp;", 0x0266F },
        { "shchcy;", 0x00449 },
        { "shcy;", 0x00448 },
        { "shortmid;", 0x02223 },
        { "shortparallel;", 0x02225 },
        { "shy;", 0x000AD },
        { "shy", 0x000AD },
        { "sigma;", 0x003C3 },
        { "sigmaf;", 0x003C2 },
        { "sigmav;", 0x003C2 },
        { "sim;", 0x0223C },
        { "simdot;", 0x02A6A },
        { "sime;", 0x02243 },
        { "simeq;", 0x02243 },
        { "simg;", 0x02A9E },
        { "simgE;", 0x02AA0 },
        { "siml;", 0x02A9D },
        { "simlE;", 0x02A9F },
        { "simne;", 0x02246 },
        { "simplus;", 0x02A24 },
        { "simrarr;", 0x02972 },
        { "slarr;", 0x02190 },
        { "smallsetminus;", 0x02216 },
        { "smashp;", 0x02A33 },
        { "smeparsl;", 0x029E4 },
        { "smid;", 0x02223 },
        { "smile;", 0x02323 },
        { "smt;", 0x02AAA },
        { "smte;", 0x02AAC },
        { "softcy;", 0x0044C },
        { "sol;", 0x0002F },
        { "solb;", 0x029C4 },
        { "solbar;", 0x0233F },
        { "sopf;", 0x1D564 },
        { "spades;", 0x02660 },
        { "spadesuit;", 0x02660 },
        { "spar;", 0x02225 },
        { "sqcap;", 0x02293 },
        { "sqcup;", 0x02294 },
        { "sqsub;", 0x0228F },
        { "sqsube;", 0x02291 },
        { "sqsubset;", 0x0228F },
        { "sqsubseteq;", 0x02291 },
        { "sqsup;", 0x02290 },
        { "sqsupe;", 0x02292 },
        { "sqsupset;", 0x02290 },
        { "sqsupseteq;", 0x02292 },
        { "squ;", 0x025A1 },
        { "square;", 0x025A1 },
        { "squarf;", 0x025AA },
        { "squf;", 0x025AA },
        { "srarr;", 0x02192 },
        { "sscr;", 0x1D4C8 },
        { "ssetmn;", 0x02216 },
        { "ssmile;", 0x02323 },
        { "sstarf;", 0x022C6 },
        { "star;", 0x02606 },
        { "starf;", 0x02605 },
        { "straightepsilon;", 0x003F5 },
        { "straightphi;", 0x003D5 },
        { "strns;", 0x000AF },
        { "sub;", 0x02282 },
        { "subE;", 0x02AC5 },
        { "subdot;", 0x02ABD },
        { "sube;", 0x02286 },
        { "subedot;", 0x02AC3 },
        { "submult;", 0x02AC1 },
        { "subnE;", 0x02ACB },
        { "subne;", 0x0228A },
        { "subplus;", 0x02ABF },
        { "subrarr;", 0x02979 },
        { "subset;", 0x02282 },
        { "subseteq;", 0x02286 },
        { "subseteqq;", 0x02AC5 },
        { "subsetneq;", 0x0228A },
        { "subsetneqq;", 0x02ACB },
        { "subsim;", 0x02AC7 },
        { "subsub;", 0x02AD5 },
        { "subsup;", 0x02AD3 },
        { "succ;", 0x0227B },
        { "succapprox;", 0x02AB8 },
        { "succcurlyeq;", 0x0227D },
        { "succeq;", 0x02AB0 },
        { "succnapprox;", 0x02ABA },
        { "succneqq;", 0x02AB6 },
        { "succnsim;", 0x022E9 },
        { "succsim;", 0x0227F },
        { "sum;", 0x02211 },
        { "sung;", 0x0266A },
        { "sup1;", 0x000B9 },
        { "sup1", 0x000B9 },
        { "sup2;", 0x000B2 },
        { "sup2", 0x000B2 },
        { "sup3;", 0x000B3 },
        { "sup3", 0x000B3 },
        { "sup;", 0x02283 },
        { "supE;", 0x02AC6 },
        { "supdot;", 0x02ABE },
        { "supdsub;", 0x02AD8 },
        { "supe;", 0x02287 },
        { "supedot;", 0x02AC4 },
        { "suphsol;", 0x027C9 },
        { "suphsub;", 0x02AD7 },
        { "suplarr;", 0x0297B },
        { "supmult;", 0x02AC2 },
        { "supnE;", 0x02ACC },
        { "supne;", 0x0228B },
        { "supplus;", 0x02AC0 },
        { "supset;", 0x02283 },
        { "supseteq;", 0x02287 },
        { "supseteqq;", 0x02AC6 },
        { "supsetneq;", 0x0228B },
        { "supsetneqq;", 0x02ACC },
        { "supsim;", 0x02AC8 },
        { "supsub;", 0x02AD4 },
        { "supsup;", 0x02AD6 },
        { "swArr;", 0x021D9 },
        { "swarhk;", 0x02926 },
        { "swarr;", 0x02199 },
        { "swarrow;", 0x02199 },
        { "swnwar;", 0x0292A },
        { "szlig;", 0x000DF },
        { "szlig", 0x000DF },
        { "target;", 0x02316 },
        { "tau;", 0x003C4 },
        { "tbrk;", 0x023B4 },
        { "tcaron;", 0x00165 },
        { "tcedil;", 0x00163 },
        { "tcy;", 0x00442 },
        { "tdot;", 0x020DB },
        { "telrec;", 0x02315 },
        { "tfr;", 0x1D531 },
        { "there4;", 0x02234 },
        { "therefore;", 0x02234 },
        { "theta;", 0x003B8 },
        { "thetasym;", 0x003D1 },
        { "thetav;", 0x003D1 },
        { "thickapprox;", 0x02248 },
        { "thicksim;", 0x0223C },
        { "thinsp;", 0x02009 },
        { "thkap;", 0x02248 },
        { "thksim;", 0x0223C },
        { "thorn;", 0x000FE },
        { "thorn", 0x000FE },
        { "tilde;", 0x002DC },
        { "times;", 0x000D7 },
        { "times", 0x000D7 },
        { "timesb;", 0x022A0 },
        { "timesbar;", 0x02A31 },
        { "timesd;", 0x02A30 },
        { "tint;", 0x0222D },
        { "toea;", 0x02928 },
        { "top;", 0x022A4 },
        { "topbot;", 0x02336 },
        { "topcir;", 0x02AF1 },
        { "topf;", 0x1D565 },
        { "topfork;", 0x02ADA },
        { "tosa;", 0x02929 },
        { "tprime;", 0x02034 },
        { "trade;", 0x02122 },
        { "triangle;", 0x025B5 },
        { "triangledown;", 0x025BF },
        { "triangleleft;", 0x025C3 },
        { "trianglelefteq;", 0x022B4 },
        { "triangleq;", 0x0225C },
        { "triangleright;", 0x025B9 },
        { "trianglerighteq;", 0x022B5 },
        { "tridot;", 0x025EC },
        { "trie;", 0x0225C },
        { "triminus;", 0x02A3A },
        { "triplus;", 0x02A39 },
        { "trisb;", 0x029CD },
        { "tritime;", 0x02A3B },
        { "trpezium;", 0x023E2 },
        { "tscr;", 0x1D4C9 },
        { "tscy;", 0x00446 },
        { "tshcy;", 0x0045B },
        { "tstrok;", 0x00167 },
        { "twixt;", 0x0226C },
        { "twoheadleftarrow;", 0x0219E },
        { "twoheadrightarrow;", 0x021A0 },
        { "uArr;", 0x021D1 },
        { "uHar;", 0x02963 },
        { "uacute;", 0x000FA },
        { "uacute", 0x000FA },
        { "uarr;", 0x02191 },
        { "ubrcy;", 0x0045E },
        { "ubreve;", 0x0016D },
        { "ucirc;", 0x000FB },
        { "ucirc", 0x000FB },
        { "ucy;", 0x00443 },
        { "udarr;", 0x021C5 },
        { "udblac;", 0x00171 },
        { "udhar;", 0x0296E },
        { "ufisht;", 0x0297E },
        { "ufr;", 0x1D532 },
        { "ugrave;", 0x000F9 },
        { "ugrave", 0x000F9 },
        { "uharl;", 0x021BF },
        { "uharr;", 0x021BE },
        { "uhblk;", 0x02580 },
        { "ulcorn;", 0x0231C },
        { "ulcorner;", 0x0231C },
        { "ulcrop;", 0x0230F },
        { "ultri;", 0x025F8 },
        { "umacr;", 0x0016B },
        { "uml;", 0x000A8 },
        { "uml", 0x000A8 },
        { "uogon;", 0x00173 },
        { "uopf;", 0x1D566 },
        { "uparrow;", 0x02191 },
        { "updownarrow;", 0x02195 },
        { "upharpoonleft;", 0x021BF },
        { "upharpoonright;", 0x021BE },
        { "uplus;", 0x0228E },
        { "upsi;", 0x003C5 },
        { "upsih;", 0x003D2 },
        { "upsilon;", 0x003C5 },
        { "upuparrows;", 0x021C8 },
        { "urcorn;", 0x0231D },
        { "urcorner;", 0x0231D },
        { "urcrop;", 0x0230E },
        { "uring;", 0x0016F },
        { "urtri;", 0x025F9 },
        { "uscr;", 0x1D4CA },
        { "utdot;", 0x022F0 },
        { "utilde;", 0x00169 },
        { "utri;", 0x025B5 },
        { "utrif;", 0x025B4 },
        { "uuarr;", 0x021C8 },
        { "uuml;", 0x000FC },
        { "uuml", 0x000FC },
        { "uwangle;", 0x029A7 },
        { "vArr;", 0x021D5 },
        { "vBar;", 0x02AE8 },
        { "vBarv;", 0x02AE9 },
        { "vDash;", 0x022A8 },
        { "vangrt;", 0x0299C },
        { "varepsilon;", 0x003F5 },
        { "varkappa;", 0x003F0 },
        { "varnothing;", 0x02205 },
        { "varphi;", 0x003D5 },
        { "varpi;", 0x003D6 },
        { "varpropto;", 0x0221D },
        { "varr;", 0x02195 },
        { "varrho;", 0x003F1 },
        { "varsigma;", 0x003C2 },
        { "vartheta;", 0x003D1 },
        { "vartriangleleft;", 0x022B2 },
        { "vartriangleright;", 0x022B3 },
        { "vcy;", 0x00432 },
        { "vdash;", 0x022A2 },
        { "vee;", 0x02228 },
        { "veebar;", 0x022BB },
        { "veeeq;", 0x0225A },
        { "vellip;", 0x022EE },
        { "verbar;", 0x0007C },
        { "vert;", 0x0007C },
        { "vfr;", 0x1D533 },
        { "vltri;", 0x022B2 },
        { "vopf;", 0x1D567 },
        { "vprop;", 0x0221D },
        { "vrtri;", 0x022B3 },
        { "vscr;", 0x1D4CB },
        { "vzigzag;", 0x0299A },
        { "wcirc;", 0x00175 },
        { "wedbar;", 0x02A5F },
        { "wedge;", 0x02227 },
        { "wedgeq;", 0x02259 },
        { "weierp;", 0x02118 },
        { "wfr;", 0x1D534 },
        { "wopf;", 0x1D568 },
        { "wp;", 0x02118 },
        { "wr;", 0x02240 },
        { "wreath;", 0x02240 },
        { "wscr;", 0x1D4CC },
        { "xcap;", 0x022C2 },
        { "xcirc;", 0x025EF },
        { "xcup;", 0x022C3 },
        { "xdtri;", 0x025BD },
        { "xfr;", 0x1D535 },
        { "xhArr;", 0x027FA },
        { "xharr;", 0x027F7 },
        { "xi;", 0x003BE },
        { "xlArr;", 0x027F8 },
        { "xlarr;", 0x027F5 },
        { "xmap;", 0x027FC },
        { "xnis;", 0x022FB },
        { "xodot;", 0x02A00 },
        { "xopf;", 0x1D569 },
        { "xoplus;", 0x02A01 },
        { "xotime;", 0x02A02 },
        { "xrArr;", 0x027F9 },
        { "xrarr;", 0x027F6 },
        { "xscr;", 0x1D4CD },
        { "xsqcup;", 0x02A06 },
        { "xuplus;", 0x02A04 },
        { "xutri;", 0x025B3 },
        { "xvee;", 0x022C1 },
        { "xwedge;", 0x022C0 },
        { "yacute;", 0x000FD },
        { "yacute", 0x000FD },
        { "yacy;", 0x0044F },
        { "ycirc;", 0x00177 },
        { "ycy;", 0x0044B },
        { "yen;", 0x000A5 },
        { "yen", 0x000A5 },
        { "yfr;", 0x1D536 },
        { "yicy;", 0x00457 },
        { "yopf;", 0x1D56A },
        { "yscr;", 0x1D4CE },
        { "yucy;", 0x0044E },
        { "yuml;", 0x000FF },
        { "yuml", 0x000FF },
        { "zacute;", 0x0017A },
        { "zcaron;", 0x0017E },
        { "zcy;", 0x00437 },
        { "zdot;", 0x0017C },
        { "zeetrf;", 0x02128 },
        { "zeta;", 0x003B6 },
        { "zfr;", 0x1D537 },
        { "zhcy;", 0x00436 },
        { "zigrarr;", 0x021DD },
        { "zopf;", 0x1D56B },
        { "zscr;", 0x1D4CF },
        { "zwj;", 0x0200D },
        { "zwnj;", 0x0200C }
    };

    constexpr struct {
        StringView entity;
        u32 code_point1;
        u32 code_point2;
    } double_code_point_entities[] = {
        { "NotEqualTilde;", 0x02242, 0x00338 },
        { "NotGreaterFullEqual;", 0x02267, 0x00338 },
        { "NotGreaterGreater;", 0x0226B, 0x00338 },
        { "NotGreaterSlantEqual;", 0x02A7E, 0x00338 },
        { "NotHumpDownHump;", 0x0224E, 0x00338 },
        { "NotHumpEqual;", 0x0224F, 0x00338 },
        { "NotLeftTriangleBar;", 0x029CF, 0x00338 },
        { "NotLessLess;", 0x0226A, 0x00338 },
        { "NotLessSlantEqual;", 0x02A7D, 0x00338 },
        { "NotNestedGreaterGreater;", 0x02AA2, 0x00338 },
        { "NotNestedLessLess;", 0x02AA1, 0x00338 },
        { "NotPrecedesEqual;", 0x02AAF, 0x00338 },
        { "NotRightTriangleBar;", 0x029D0, 0x00338 },
        { "NotSquareSubset;", 0x0228F, 0x00338 },
        { "NotSquareSuperset;", 0x02290, 0x00338 },
        { "NotSubset;", 0x02282, 0x020D2 },
        { "NotSucceedsEqual;", 0x02AB0, 0x00338 },
        { "NotSucceedsTilde;", 0x0227F, 0x00338 },
        { "NotSuperset;", 0x02283, 0x020D2 },
        { "ThickSpace;", 0x0205F, 0x0200A },
        { "acE;", 0x0223E, 0x00333 },
        { "bne;", 0x0003D, 0x020E5 },
        { "bnequiv;", 0x02261, 0x020E5 },
        { "caps;", 0x02229, 0x0FE00 },
        { "cups;", 0x0222A, 0x0FE00 },
        { "fjlig;", 0x00066, 0x0006A },
        { "gesl;", 0x022DB, 0x0FE00 },
        { "gvertneqq;", 0x02269, 0x0FE00 },
        { "gvnE;", 0x02269, 0x0FE00 },
        { "lates;", 0x02AAD, 0x0FE00 },
        { "lesg;", 0x022DA, 0x0FE00 },
        { "lvertneqq;", 0x02268, 0x0FE00 },
        { "lvnE;", 0x02268, 0x0FE00 },
        { "nGg;", 0x022D9, 0x00338 },
        { "nGt;", 0x0226B, 0x020D2 },
        { "nGtv;", 0x0226B, 0x00338 },
        { "nLl;", 0x022D8, 0x00338 },
        { "nLt;", 0x0226A, 0x020D2 },
        { "nLtv;", 0x0226A, 0x00338 },
        { "nang;", 0x02220, 0x020D2 },
        { "napE;", 0x02A70, 0x00338 },
        { "napid;", 0x0224B, 0x00338 },
        { "nbump;", 0x0224E, 0x00338 },
        { "nbumpe;", 0x0224F, 0x00338 },
        { "ncongdot;", 0x02A6D, 0x00338 },
        { "nedot;", 0x02250, 0x00338 },
        { "nesim;", 0x02242, 0x00338 },
        { "ngE;", 0x02267, 0x00338 },
        { "ngeqq;", 0x02267, 0x00338 },
        { "ngeqslant;", 0x02A7E, 0x00338 },
        { "nges;", 0x02A7E, 0x00338 },
        { "nlE;", 0x02266, 0x00338 },
        { "nleqq;", 0x02266, 0x00338 },
        { "nleqslant;", 0x02A7D, 0x00338 },
        { "nles;", 0x02A7D, 0x00338 },
        { "notinE;", 0x022F9, 0x00338 },
        { "notindot;", 0x022F5, 0x00338 },
        { "nparsl;", 0x02AFD, 0x020E5 },
        { "npart;", 0x02202, 0x00338 },
        { "npre;", 0x02AAF, 0x00338 },
        { "npreceq;", 0x02AAF, 0x00338 },
        { "nrarrc;", 0x02933, 0x00338 },
        { "nrarrw;", 0x0219D, 0x00338 },
        { "nsce;", 0x02AB0, 0x00338 },
        { "nsubE;", 0x02AC5, 0x00338 },
        { "nsubset;", 0x02282, 0x020D2 },
        { "nsubseteqq;", 0x02AC5, 0x00338 },
        { "nsucceq;", 0x02AB0, 0x00338 },
        { "nsupE;", 0x02AC6, 0x00338 },
        { "nsupset;", 0x02283, 0x020D2 },
        { "nsupseteqq;", 0x02AC6, 0x00338 },
        { "nvap;", 0x0224D, 0x020D2 },
        { "nvge;", 0x02265, 0x020D2 },
        { "nvgt;", 0x0003E, 0x020D2 },
        { "nvle;", 0x02264, 0x020D2 },
        { "nvlt;", 0x0003C, 0x020D2 },
        { "nvltrie;", 0x022B4, 0x020D2 },
        { "nvrtrie;", 0x022B5, 0x020D2 },
        { "nvsim;", 0x0223C, 0x020D2 },
        { "race;", 0x0223D, 0x00331 },
        { "smtes;", 0x02AAC, 0x0FE00 },
        { "sqcaps;", 0x02293, 0x0FE00 },
        { "sqcups;", 0x02294, 0x0FE00 },
        { "varsubsetneq;", 0x0228A, 0x0FE00 },
        { "varsubsetneqq;", 0x02ACB, 0x0FE00 },
        { "varsupsetneq;", 0x0228B, 0x0FE00 },
        { "varsupsetneqq;", 0x02ACC, 0x0FE00 },
        { "vnsub;", 0x02282, 0x020D2 },
        { "vnsup;", 0x02283, 0x020D2 },
        { "vsubnE;", 0x02ACB, 0x0FE00 },
        { "vsubne;", 0x0228A, 0x0FE00 },
        { "vsupnE;", 0x02ACC, 0x0FE00 },
        { "vsupne;", 0x0228B, 0x0FE00 },
    };

    EntityMatch match;

    for (auto& single_code_point_entity : single_code_point_entities) {
        if (entity.starts_with(single_code_point_entity.entity)) {
            if (match.entity.is_null() || single_code_point_entity.entity.length() > match.entity.length())
                match = { { single_code_point_entity.code_point }, single_code_point_entity.entity };
        }
    }

    for (auto& double_code_point_entity : double_code_point_entities) {
        if (entity.starts_with(double_code_point_entity.entity)) {
            if (match.entity.is_null() || double_code_point_entity.entity.length() > match.entity.length())
                match = EntityMatch { { double_code_point_entity.code_point1, double_code_point_entity.code_point2 }, StringView(double_code_point_entity.entity) };
        }
    }

    if (match.entity.is_empty())
        return {};
    return match;
}

}
}
